
// 自定义Alert弹窗。
function ialert(msg) {
    var func = arguments[1];
    $('#alertModal').find('.modal-body').text(msg).end().one('hidden.bs.modal', function(){
        if (typeof func == 'function') {
            func.call(this);
        }
    }).modal();
}

//自定义Confirm弹窗。
function iconfirm(options) {
	options = $.extend({
		'action': '#',
		'title'	: '操作确认',
		'body'	: '',
		'data'	: {},
		'ok'		: $.noop
	}, options || {});

	var callback = $.noop;
	
	$('#confirmModal button[data-primary="true"]').off('click').on('click', function() {
		 $('#confirmModal').modal('hide');
		 if (typeof options.ok == 'function') {
			callback = function() {
				if(options.ok.call(this) !== false) {
					// $(this).find('input').remove();
		        		var $form = $(this).find('form').attr('action', options.action);
		        		$.each(options.data, function(key, value) {
                        if($.isArray(value)) {
                            $.each(value, function() {
                                $form.append('<input type="hidden" name="' + key + '[]" value="' + this + '" />');
                            });
                        } else {
                            $form.append('<input type="hidden" name="' + key + '" value="' + value + '" />');
                        }
                    });
		        		$form.get(0).submit();
				}
			};
		 }
		 return false;
	});

	$('#confirmModalLabel').text(options.title);
    $('#confirmModal').find('.modal-body').text(options.body).end().one('hidden.bs.modal', function(){
        callback.call(this);
    }).modal('show');
}

// 限制输入框中只能输入整数
$(document).on('keyup', '.integer_number', function() {
    if ($(this).val() != '' && !/^[\d]+$/.test($(this).val())) {
        $(this).val('');
    }
});

// 现在输入框中只能输入数字
$(document).on('keyup', '.float_number', function() {
    if ($(this).val() != '' && isNaN($(this).val())) {
        $(this).val('');
    }
});

// 返回上一页
$(document).on('click', '#go_back', function(e) {
    e.preventDefault();
    if ($(this).attr('data-url'))
    window.history.go(-1);
});

// 异步提交通用配置
$.ajaxSetup({
    type: "POST",
    dataType: 'json',
    statusCode: {
        401: function() {
            ialert('请先登录');
        },
        402: function(xhq) {
            ialert(xhq.responseText);
        },
        403: function(xhq) {
            ialert('您没有相关权限执行此操作')
        },
        404: function() {
            ialert('访问错误');
        }
    }
});

// 异步提交表单
function submitForm(func, form, options) {
    if (typeof  form == 'undefined') {
        form = $("#form");
    }
    options = $.extend({
        data: form.serialize(),
        url: form.attr('action'),
        success: function(data) {
            if (data.status == 200) {
                func(data);
            } else {
                ialert(data.message);
            }
        }
    }, options || {});

    $.ajax(options);

}


//自定义Confirm弹窗。
function iconfirm2(options) {
    options = $.extend({
        'action': '#',
        'title'	: '操作确认',
        'body'	: '',
        'data'	: {},
        'autoHide' : false,
        'ok'		: null
    }, options || {});

    var $form = $('#confirmModal').find('form').attr('action', options.action);
    $('#confirmModal button[data-primary="true"]').off('click').on('click', function() {
        if (options.autoHide) {
            $('#confirmModal').modal('hide');
        }
        var html = '';
        $.each(options.data, function(key, value) {
            if($.isArray(value)) {
                $.each(value, function() {
                    html += '<input type="hidden" name="' + key + '[]" value="' + this + '" />';
                });
            } else {
                html += '<input type="hidden" name="' + key + '" value="' + value + '" />';
            }
        });
        $form.append('<div id="_extra_field_data_">'+html+'</div> ');

        if (typeof options.ok == 'function') {
            if (options.ok.call(this) == true) {
                $('#confirmModal').modal('hide');
            }
        } else {
            $('#confirmModal').modal('hide');
            $form.get(0).submit();
        }
        return false;
    });

    $('#confirmModalLabel').text(options.title);
    $('#confirmModal').find('.modal-body').html(options.body).end().one('hidden.bs.modal', function(){
        $("#_extra_field_data_").remove();
    }).modal('show');
}